package com.xndc.service.iec104;

/**
 * IEC 104命令服务接口
 */
public interface Iec104CommandService {
    
    /**
     * 发送单点命令
     * 
     * @param deviceId 设备ID
     * @param ioa 信息对象地址
     * @param value 命令值(true=开，false=关)
     * @return 是否成功发送
     */
    boolean sendSingleCommand(String deviceId, int ioa, boolean value);
    
    /**
     * 发送双点命令
     * 
     * @param deviceId 设备ID
     * @param ioa 信息对象地址
     * @param value 命令值(1=开，2=关，0=未定义，3=未定义)
     * @return 是否成功发送
     */
    boolean sendDoubleCommand(String deviceId, int ioa, byte value);
    
    /**
     * 发送设点命令
     * 
     * @param deviceId 设备ID
     * @param ioa 信息对象地址
     * @param value 命令值(浮点数)
     * @return 是否成功发送
     */
    boolean sendSetpointCommand(String deviceId, int ioa, float value);
    
    /**
     * 总召唤命令
     * 
     * @param deviceId 设备ID
     * @return 是否成功发送
     */
    boolean sendInterrogationCommand(String deviceId);
    
    /**
     * 时钟同步命令
     * 
     * @param deviceId 设备ID
     * @return 是否成功发送
     */
    boolean sendClockSyncCommand(String deviceId);
} 